package com.atguigu.gmall.order.service;

import com.atguigu.gmall.model.order.OrderInfo;

import java.util.Map;

/**
 * 订单的服务类接口
 */
public interface OrderService {

    /**
     * 新增订单
     * @param orderInfo
     * @return
     */
    public OrderInfo addOrder(OrderInfo orderInfo);

    /**
     * 查询订单详情
     * @param id
     * @return
     */
    public OrderInfo getById(Long id);

    /**
     * 支付成功
     * @param map
     * @return
     */
    public Integer paySuccess(Map<String,String> map);

    /**
     * 支付失败
     * @param map
     * @return
     */
    public Integer payFail(Map<String,String> map);

    /**
     * 取消订单
     * @param orderId
     */
    public void cancelOrder(Long orderId);
    /**
     * 生产流水号
     * @param userId
     * @return
     */
    String getTradeNo(String userId);

    /**
     * 比较流水号
     * @param userId 获取缓存中的流水号
     * @param tradeCodeNo   页面传递过来的流水号
     * @return
     */
    boolean checkTradeCode(String userId, String tradeCodeNo);


    /**
     * 删除流水号
     * @param userId
     */
    void deleteTradeNo(String userId);
}
